home *** CD-ROM | disk | FTP | other *** search
/ Aminet 48 / Aminet 48 (2002)(GTI - Schatztruhe)[!][Apr 2002].iso / Aminet / text / edit / vim60rt.lha / Vim / vim60 / syntax / sas.vim < prev    next >
Encoding:
Text File  |  2001-09-26  |  11.5 KB  |  265 lines

  1. " Vim syntax file
  2. " Language:    SAS
  3. " Maintainer:    James Kidd <james.kidd@covance.com>
  4. " Last Change:    26 Sep 2001
  5. "               Added keywords for use in SAS SQL procedure and hilighting for 
  6. "               SAS base procedures, added logic to distinqush between versions 
  7. "               for SAS macro variable hi-lighting (Thanks to user Ronald 
  8. "               Höllwarth for pointing out bug)
  9. "  For version 5.x: Clear all syntax items
  10. "  For version 6.x: Quit when a syntax file was already loaded
  11. if version < 600
  12.    syntax clear
  13. elseif exists("b:current_syntax")
  14.    finish
  15. endif
  16.  
  17. syn case ignore
  18.  
  19. syn region sasString  start=+"+  skip=+\\\\\|\\"+  end=+"+
  20. syn region sasString  start=+'+  skip=+\\\\\|\\"+  end=+'+
  21.  
  22. "syn region sasCards    start="cards;"  end=";"
  23. "syn region sasCards    start="CARDS;"  end=";"
  24.  
  25. syn match sasNumber  "-\=\<\d*\.\=[0-9_]\>"
  26.  
  27. syn region sasComment    start="/\*"  end="\*/"
  28. syn match sasComment  "^\s*\*.*;"
  29.  
  30. " This line defines macro variables in code.  HiLink at end of file
  31. " defines the color scheme. Begin region with ampersand and end with
  32. " any non-word character offset by -1; put ampersand in the skip list
  33. " just in case it is used to concatenate macro variable values.
  34.  
  35. " Thanks to ronald höllwarth for this fix to an intra-versioning
  36. " problem with this little feature
  37.  
  38. if version < 600  
  39.    syn region sasMacroVar   start="\&" skip="[_&]" end="\W"he=e-1
  40. else             " for the older Vim's just do it their way ...
  41.    syn region sasMacroVar   start="&" skip="[_&]" end="\W"he=e-1
  42. endif
  43.  
  44. syn keyword sasStep           RUN QUIT
  45. syn match   sasStep        "^\s*DATA\s"
  46. "syn match   sasProcs        "^\s*PROC\s"
  47.  
  48. " Base SAS Procs - version 8.1
  49. syn region  sasProcs        start="PROC FORMAT" end="\W"
  50. syn region  sasProcs        start="PROC APPEND" end="\W" 
  51. syn region  sasProcs        start="PROC CALENDAR" end="\W" 
  52. syn region  sasProcs        start="PROC CATALOG" end="\W" 
  53. syn region  sasProcs        start="PROC CHART" end="\W" 
  54. syn region  sasProcs        start="PROC CIMPORT" end="\W"
  55. syn region  sasProcs        start="PROC COMPARE" end="\W" 
  56. syn region  sasProcs        start="PROC CONTENTS" end="\W" 
  57. syn region  sasProcs        start="PROC COPY" end="\W" 
  58. syn region  sasProcs        start="PROC CORR" end="\W" 
  59. syn region  sasProcs        start="PROC CPORT" end="\W" 
  60. syn region  sasProcs        start="PROC DATASETS" end="\W" 
  61. syn region  sasProcs        start="PROC DBCSTAB" end="\W" 
  62. syn region  sasProcs        start="PROC DISPLAY" end="\W" 
  63. syn region  sasProcs        start="PROC EXPLODE" end="\W" 
  64. syn region  sasProcs        start="PROC EXPORT" end="\W" 
  65. syn region  sasProcs        start="PROC FORMAT" end="\W" 
  66. syn region  sasProcs        start="PROC FORMS" end="\W" 
  67. syn region  sasProcs        start="PROC FREQ" end="\W" 
  68. syn region  sasProcs        start="PROC FSLIST" end="\W" 
  69. syn region  sasProcs        start="PROC IMPORT" end="\W" 
  70. syn region  sasProcs        start="PROC MEANS" end="\W" 
  71. syn region  sasProcs        start="PROC OPTIONS" end="\W" 
  72. syn region  sasProcs        start="PROC PLOT" end="\W" 
  73. syn region  sasProcs        start="PROC PMENU" end="\W" 
  74. syn region  sasProcs        start="PROC PRINT" end="\W" 
  75. syn region  sasProcs        start="PROC PRINTTO" end="\W" 
  76. syn region  sasProcs        start="PROC RANK" end="\W" 
  77. syn region  sasProcs        start="PROC REGISTRY" end="\W" 
  78. syn region  sasProcs        start="PROC REPORT" end="\W" 
  79. syn region  sasProcs        start="PROC SORT" end="\W" 
  80. syn region  sasProcs        start="PROC SQL" end="\W" 
  81. syn region  sasProcs        start="PROC STANDARD" end="\W" 
  82. syn region  sasProcs        start="PROC SUMMARY" end="\W" 
  83. syn region  sasProcs        start="PROC TABULATE" end="\W" 
  84. syn region  sasProcs        start="PROC TIMEPLOT" end="\W" 
  85. syn region  sasProcs        start="PROC TRANSPOSE" end="\W" 
  86. syn region  sasProcs        start="PROC TRANTAB" end="\W" 
  87. syn region  sasProcs        start="PROC UNIVARIATE" end="\W" 
  88.  
  89. syn keyword sasConditional    DO ELSE END IF THEN UNTIL WHILE
  90.  
  91. syn keyword sasStatement      ABORT ARRAY ATTRIB BY CALL CARDS CARDS4 CATNAME
  92. syn keyword sasStatement      CONTINUE DATALINES DATALINES4 DELETE DISPLAY
  93. syn keyword sasStatement      DM DROP ENDSAS ERROR FILE FILENAME FOOTNOTE
  94. syn keyword sasStatement      FORMAT GOTO INFILE INFORMAT INPUT KEEP
  95. syn keyword sasStatement      LABEL LEAVE LENGTH LIBNAME LINK LIST LOSTCARD
  96. syn keyword sasStatement      MERGE MISSING MODIFY OPTIONS OUTPUT PAGE
  97. syn keyword sasStatement      PUT REDIRECT REMOVE RENAME REPLACE RETAIN
  98. syn keyword sasStatement      RETURN SELECT SET SKIP STARTSAS STOP TITLE
  99. syn keyword sasStatement      UPDATE WAITSAS WHERE WINDOW X
  100.  
  101. " Keywords that are used in Proc SQL 
  102. " I left them as statements because SAS's enhanced editor highlights
  103. " them the same as normal statements used in data steps
  104.  
  105. syn keyword sasStatement      ADD AND ALTER AS CASCADE CHECK CREATE
  106. syn keyword sasStatement      DELETE DESCRIBE DISTINCT DROP FOREIGN 
  107. syn keyword sasStatement      FROM GROUP HAVING INDEX INSERT INTO IN
  108. syn keyword sasStatement      KEY LIKE MESSAGE MODIFY MSGTYPE NOT 
  109. syn keyword sasStatement      NULL ON OR ORDER PRIMARY REFERENCES
  110. syn keyword sasStatement      RESET RESTRICT SELECT SET TABLE
  111. syn keyword sasStatement      UNIQUE UPDATE VALIDATE VIEW WHERE
  112.  
  113.  
  114. syn match   sasStatement      "FOOTNOTE\d"
  115. syn match   sasStatement      "TITLE\d"
  116.  
  117. syn match   sasMacro      "%BQUOTE"
  118. syn match   sasMacro      "%NRBQUOTE"
  119. syn match   sasMacro      "%CMPRES"
  120. syn match   sasMacro      "%QCMPRES"
  121. syn match   sasMacro      "%COMPSTOR"
  122. syn match   sasMacro      "%DATATYP"
  123. syn match   sasMacro      "%DISPLAY"
  124. syn match   sasMacro      "%DO"
  125. syn match   sasMacro      "%ELSE"
  126. syn match   sasMacro      "%END"
  127. syn match   sasMacro      "%EVAL"
  128. syn match   sasMacro      "%GLOBAL"
  129. syn match   sasMacro      "%GOTO"
  130. syn match   sasMacro      "%IF"
  131. syn match   sasMacro      "%INDEX"
  132. syn match   sasMacro      "%INPUT"
  133. syn match   sasMacro      "%KEYDEF"
  134. syn match   sasMacro      "%LABEL"
  135. syn match   sasMacro      "%LEFT"
  136. syn match   sasMacro      "%LENGTH"
  137. syn match   sasMacro      "%LET"
  138. syn match   sasMacro      "%LOCAL"
  139. syn match   sasMacro      "%LOWCASE"
  140. syn match   sasMacro      "%MACRO"
  141. syn match   sasMacro      "%MEND"
  142. syn match   sasMacro      "%NRBQUOTE"
  143. syn match   sasMacro      "%NRQUOTE"
  144. syn match   sasMacro      "%NRSTR"
  145. syn match   sasMacro      "%PUT"
  146. syn match   sasMacro      "%QCMPRES"
  147. syn match   sasMacro      "%QLEFT"
  148. syn match   sasMacro      "%QLOWCASE"
  149. syn match   sasMacro      "%QSCAN"
  150. syn match   sasMacro      "%QSUBSTR"
  151. syn match   sasMacro      "%QSYSFUNC"
  152. syn match   sasMacro      "%QTRIM"
  153. syn match   sasMacro      "%QUOTE"
  154. syn match   sasMacro      "%QUPCASE"
  155. syn match   sasMacro      "%SCAN"
  156. syn match   sasMacro      "%STR"
  157. syn match   sasMacro      "%SUBSTR"
  158. syn match   sasMacro      "%SUPERQ"
  159. syn match   sasMacro      "%SYSCALL"
  160. syn match   sasMacro      "%SYSEVALF"
  161. syn match   sasMacro      "%SYSEXEC"
  162. syn match   sasMacro      "%SYSFUNC"
  163. syn match   sasMacro      "%SYSGET"
  164. syn match   sasMacro      "%SYSLPUT"
  165. syn match   sasMacro      "%SYSPROD"
  166. syn match   sasMacro      "%SYSRC"
  167. syn match   sasMacro      "%SYSRPUT"
  168. syn match   sasMacro      "%THEN"
  169. syn match   sasMacro      "%TO"
  170. syn match   sasMacro      "%TRIM"
  171. syn match   sasMacro      "%UNQUOTE"
  172. syn match   sasMacro      "%UNTIL"
  173. syn match   sasMacro      "%UPCASE"
  174. syn match   sasMacro      "%VERIFY"
  175. syn match   sasMacro      "%WHILE"
  176. syn match   sasMacro      "%WINDOW"
  177.  
  178. " SAS Functions
  179.  
  180. syn keyword sasFunction ABS ADDR AIRY ARCOS ARSIN ATAN ATTRC ATTRN
  181. syn keyword sasFunction BAND BETAINV BLSHIFT BNOT BOR BRSHIFT BXOR
  182. syn keyword sasFunction BYTE CDF CEIL CEXIST CINV CLOSE CNONCT COLLATE
  183. syn keyword sasFunction COMPBL COMPOUND COMPRESS COS COSH CSS CUROBS
  184. syn keyword sasFunction CV DACCDB DACCDBSL DACCSL DACCSYD DACCTAB
  185. syn keyword sasFunction DAIRY DATE DATEJUL DATEPART DATETIME DAY
  186. syn keyword sasFunction DCLOSE DEPDB DEPDBSL DEPDBSL DEPSL DEPSL
  187. syn keyword sasFunction DEPSYD DEPSYD DEPTAB DEPTAB DEQUOTE DHMS
  188. syn keyword sasFunction DIF DIGAMMA DIM DINFO DNUM DOPEN DOPTNAME
  189. syn keyword sasFunction DOPTNUM DREAD DROPNOTE DSNAME ERF ERFC EXIST
  190. syn keyword sasFunction EXP FAPPEND FCLOSE FCOL FDELETE FETCH FETCHOBS
  191. syn keyword sasFunction FEXIST FGET FILEEXIST FILENAME FILEREF FINFO
  192. syn keyword sasFunction FINV FIPNAME FIPNAMEL FIPSTATE FLOOR FNONCT
  193. syn keyword sasFunction FNOTE FOPEN FOPTNAME FOPTNUM FPOINT FPOS
  194. syn keyword sasFunction FPUT FREAD FREWIND FRLEN FSEP FUZZ FWRITE
  195. syn keyword sasFunction GAMINV GAMMA GETOPTION GETVARC GETVARN HBOUND
  196. syn keyword sasFunction HMS HOSTHELP HOUR IBESSEL INDEX INDEXC
  197. syn keyword sasFunction INDEXW INPUT INPUTC INPUTN INT INTCK INTNX
  198. syn keyword sasFunction INTRR IRR JBESSEL JULDATE KURTOSIS LAG LBOUND
  199. syn keyword sasFunction LEFT LENGTH LGAMMA LIBNAME LIBREF LOG LOG10
  200. syn keyword sasFunction LOG2 LOGPDF LOGPMF LOGSDF LOWCASE MAX MDY
  201. syn keyword sasFunction MEAN MIN MINUTE MOD MONTH MOPEN MORT N
  202. syn keyword sasFunction NETPV NMISS NORMAL NOTE NPV OPEN ORDINAL
  203. syn keyword sasFunction PATHNAME PDF PEEK PEEKC PMF POINT POISSON POKE
  204. syn keyword sasFunction PROBBETA PROBBNML PROBCHI PROBF PROBGAM
  205. syn keyword sasFunction PROBHYPR PROBIT PROBNEGB PROBNORM PROBT PUT
  206. syn keyword sasFunction PUTC PUTN QTR QUOTE RANBIN RANCAU RANEXP
  207. syn keyword sasFunction RANGAM RANGE RANK RANNOR RANPOI RANTBL RANTRI
  208. syn keyword sasFunction RANUNI REPEAT RESOLVE REVERSE REWIND RIGHT
  209. syn keyword sasFunction ROUND SAVING SCAN SDF SECOND SIGN SIN SINH
  210. syn keyword sasFunction SKEWNESS SOUNDEX SPEDIS SQRT STD STDERR STFIPS
  211. syn keyword sasFunction STNAME STNAMEL SUBSTR SUM SYMGET SYSGET SYSMSG
  212. syn keyword sasFunction SYSPROD SYSRC SYSTEM TAN TANH TIME TIMEPART
  213. syn keyword sasFunction TINV TNONCT TODAY TRANSLATE TRANWRD TRIGAMMA
  214. syn keyword sasFunction TRIM TRIMN TRUNC UNIFORM UPCASE USS VAR
  215. syn keyword sasFunction VARFMT VARINFMT VARLABEL VARLEN VARNAME
  216. syn keyword sasFunction VARNUM VARRAY VARRAYX VARTYPE VERIFY VFORMAT
  217. syn keyword sasFunction VFORMATD VFORMATDX VFORMATN VFORMATNX VFORMATW
  218. syn keyword sasFunction VFORMATWX VFORMATX VINARRAY VINARRAYX VINFORMAT
  219. syn keyword sasFunction VINFORMATD VINFORMATDX VINFORMATN VINFORMATNX
  220. syn keyword sasFunction VINFORMATW VINFORMATWX VINFORMATX VLABEL
  221. syn keyword sasFunction VLABELX VLENGTH VLENGTHX VNAME VNAMEX VTYPE
  222. syn keyword sasFunction VTYPEX WEEKDAY YEAR YYQ ZIPFIPS ZIPNAME ZIPNAMEL
  223. syn keyword sasFunction ZIPSTATE
  224.  
  225. " Handy settings for using vim with log files
  226. syn keyword sasErrMsg         ERROR
  227. syn keyword sasWarnMsg        WARNING
  228. syn keyword sasLogMsg         NOTE
  229.  
  230. " End of SAS Functions
  231.  
  232. "  Define the default highlighting.
  233. "  For version 5.7 and earlier: only when not done already
  234. "  For version 5.8 and later: only when an item doesn't have highlighting yet
  235.  
  236. if version >= 508 || !exists("did_sas_syntax_inits")
  237.    if version < 508
  238.       let did_sas_syntax_inits = 1
  239.       command -nargs=+ HiLink hi link <args>
  240.    else
  241.       command -nargs=+ HiLink hi def link <args>
  242.    endif
  243. " Special hilighting for the SAS proc section   
  244.    hi     sasProcs              term=bold ctermfg=Blue gui=bold guifg=Blue
  245.  
  246.    HiLink sasComment            Comment
  247.    HiLink sasConditional        Statement
  248.    HiLink sasStep               Statement
  249.    HiLink sasFunction           Function
  250.    HiLink sasMacro              PreProc
  251.    HiLink sasMacroVar           NonText
  252.    HiLink sasNumber             Number
  253.    HiLink sasStatement          Statement
  254.    HiLink sasString             String
  255.    HiLink sasErrMsg        ErrorMsg
  256.    HiLink sasWarnMsg        WarningMsg
  257.    HiLink sasLogMsg        MoreMsg
  258.    HiLink sasCards        MoreMsg
  259.   delcommand HiLink
  260. endif
  261.  
  262. let b:current_syntax = "sas"
  263.  
  264. " vim: ts=8
  265.